package it.polimi.authentication.ejb.usermanagement;

import it.polimi.authentication.ejb.usermanagement.dto.HotelDTO;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.*;

import java.util.List;


/**
 * The persistent class for the hotel database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name="Hotel.findAll", query="SELECT h FROM Hotel h"),
	@NamedQuery(name="Hotel.findHotelInCity", query="SELECT h FROM Hotel h WHERE h.citta= :city and h.Disponibile = true"),
	@NamedQuery(name="Hotel.findPrezzo", query="SELECT h.prezzo FROM Hotel h WHERE h.nomeHotel= :nomeH"),
	@NamedQuery(name="Hotel.findAllOk", query="SELECT h FROM Hotel h WHERE h.Disponibile = true"),
	@NamedQuery(name="Hotel.findS", query="SELECT h.Stelle FROM Hotel h WHERE h.Disponibile = true AND h.nomeHotel = :nomeH"),
	@NamedQuery(name="Hotel.delete", query="UPDATE Hotel h SET h.Disponibile = false WHERE h.nomeHotel = :nomeH"),
	@NamedQuery(name="Hotel.findStelle", query="SELECT h.Stelle FROM Hotel h WHERE h.nomeHotel= :nomeH"),
	@NamedQuery(name="Hotel.findThis", query="SELECT h FROM Hotel h WHERE h.nomeHotel = :nomeH"),
	
		})
public class Hotel implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private String nomeHotel;

	private String citta;

	private String indirizzo;
	
    private Boolean Disponibile;
    
    private int Stelle;
    
    private BigDecimal prezzo;
    


	//bi-directional many-to-one association to PacchettoHotel
	/*@OneToMany(mappedBy="hotel")
	private List<PacchettoHotel> pacchettoHotels;*/

	public Hotel() {
	}

	public Hotel(HotelDTO hotel) {
		super();
		this.citta=hotel.getCitta();
		this.indirizzo=hotel.getIndirizzo();
		this.nomeHotel=hotel.getNome();
		this.Stelle=hotel.getStelle();
		this.Disponibile = hotel.getDisponibile();
		this.prezzo = hotel.getPrezzo();
	}

	public int getStelle() {
		return Stelle;
	}

	public void setStelle(int stelle) {
		Stelle = stelle;
	}

	public Boolean getDisponibile() {
		return Disponibile;
	}

	public void setDisponibile(Boolean disponibile) {
		Disponibile = disponibile;
	}

	public BigDecimal getPrezzo() {
		return prezzo;
	}

	public void setPrezzo(BigDecimal prezzo) {
		this.prezzo = prezzo;
	}
	
	public String getNomeHotel() {
		return this.nomeHotel;
	}

	public void setNomeHotel(String nomeHotel) {
		this.nomeHotel = nomeHotel;
	}

	public String getCitta() {
		return this.citta;
	}

	public void setCitta(String citta) {
		this.citta = citta;
	}

	public String getIndirizzo() {
		return this.indirizzo;
	}

	public void setIndirizzo(String indirizzo) {
		this.indirizzo = indirizzo;
	}

	/*public List<PacchettoHotel> getPacchettoHotels() {
		return this.pacchettoHotels;
	}

	public void setPacchettoHotels(List<PacchettoHotel> pacchettoHotels) {
		this.pacchettoHotels = pacchettoHotels;
	}

	public PacchettoHotel addPacchettoHotel(PacchettoHotel pacchettoHotel) {
		getPacchettoHotels().add(pacchettoHotel);
		pacchettoHotel.setHotel(this);

		return pacchettoHotel;
	}

	public PacchettoHotel removePacchettoHotel(PacchettoHotel pacchettoHotel) {
		getPacchettoHotels().remove(pacchettoHotel);
		pacchettoHotel.setHotel(null);

		return pacchettoHotel;
	}*/

}